小弟服務的公司要求我寫一個線上請假系統,在網路上找免費的workflow軟體,發現ProcessMaker Community蠻適用的,因此開始了學習ProcessMaker之旅。
目前請假系統已經接近完工,於是開始寫教程,提供有興趣的人參考。
首先介紹系統架構,由於公司原本是採紙本請假,人工遞送方式,假單批完會送到人事做註記,原本就有一個人事用的註記系統,請參考下圖
這個系統一看就知道是用Crystal Reports寫的,只能是單機版應用程式,沒有權限控管,只是單純做資料庫的CRUD而已,後端資料庫是早期的MSSQL Express,要跟ProcessMaker結合也並非不行,於是資料庫採取新舊並用,以便讓人事能夠持續使用舊系統註記,同時開發ProcessMaker的網頁版註記介面,至於人員資料,為了能充分利用ProcessMaker的組織功能,主要的人事資料異動 (如新進、離職等,都用ProcessMaker的介面來完成,請參考下圖
如果用有管理權限的帳號登入,就可以新增用戶,在上方欄目選Admin,左側欄目選Users,就具有新增、修改、刪除用戶等功能,進入新增後,可以建立新用戶,如下圖,可以輸入中英文姓名、登入帳號、電子信箱、有效日期、密碼等,也可以勾選讓用戶第一次登入後改密碼,另外也可以選擇適合該用戶的日曆 (Calendar)
左側欄目還有幾個常用的功能,首先說明群組 (Groups) 功能,這個功能是用來增加各種群組,每個用戶不限一個群組,群組的功能就是用來在特定情況下,只允許某個特定群組執行該功能,這裡舉一個實際例子,下面有幾張圖,第一張圖表示具有HR群組的人員,一共有3位,因為個資保護,將姓名抹除,第二張圖顯示在 ”請假單(上傳)” 這個步驟中設定了兩個條件,第一是選單編號變數值為5 (選單編號是由一個下拉式選單所產生) ,第二是群組HR變數值為1 (群組HR是由一個Trigger所產生,Trigger因為不知道該怎麼翻成中文,所以沿用原文,在每個Dynaform或特定步驟前後都可以置入Trigger,Trigger實際上也就是一小段php程式)
下圖就是根據@@USR_USERNAME這個系統變數,來判斷該用戶是否屬於HR等3個群組,如果符合,就將相對應的變數設為1
然後將這個Trigger加入第一個Dynaform之後,在用戶完成選擇表格之後就可以判斷用戶是否屬於HR群組,當進行到 ”請假單(上傳)” 這個步驟時,如果非屬於HR群組,這個步驟即被跳過
接下來說明何為Dynaform,其實Dynaform就是一個網頁表單,裡面可以放入各類UI元件以完成特定的功能,在這個例子中, “選擇表格” 是最簡單的Dynaform,如下圖,它只有兩個UI,一個下拉選單和一個按鈕,下拉選單裡面每一個選項都是一個Dynaform,對應到ddSelectForm,如要執行外出單的話,該值就必須為1,依此類推
今天就先解說到此,下次將介紹Departments的功能及其運用方式。
FB社團同步發表
ProcessMaker中文交流